This invention relates in general to memory systems, and in particular to a memory system with versatile content control features.
Storage devices such as flash memory cards have become the storage medium of choice for storing digital content such as photographs. Flash memory cards may also be used to distribute other types of media content. Moreover, an increasing variety of host devices such as computers, digital cameras, cellular telephones, personal digital assistants (PDAs) and media players such as MP3 players now have the capability of rendering the media content stored in flash memory cards. There is thus great potential for flash memory cards, as well as other types of mobile storage devices, to become a widely used vehicle for distributing digital content.
With the growing use of storage devices such as smart cards for various purposes, there is a need for storage devices to be provided with more control and processing capabilities. Thus, in some applications, it may be desirable for certain control structures to be stored in storage devices. These control structures enable the storage devices to control access to data stored in the devices. For example, smart cards have been used to store banking related information such as credentials for access to bank accounts or health insurance related information. Control structures are installed in smart cards to prevent unauthorized access to such information. Information on smart cards can be found in Smart Cards Handbook, Third Edition, by Rankl and Effing, John Wiley & Sons, Ltd., England, 2003. At present, smart cards have been primarily used for single uses or purposes, such as in the form of prepaid telephone cards, bank cards or health insurance cards.
In other applications, it may be desirable for software applications to be stored in storage devices. These software applications enable the storage devices to process data stored in the devices. For example, some smart cards known as JAVA cards contain software applications for supporting services, such as banking services. Information on JAVA cards can be found in the article “An Introduction to Java Card Technology—Part 1,” by C. Enrique Ortiz, published May 29, 2003 on the Sun Developer Network. By their design, however, smart cards including JAVA cards are used to control access either to data, or to applications, but not to both.
Due to the various issues and problems described above, none of the systems currently in use in storage and host devices is entirely satisfactory. It is therefore desirable to provide improved systems with better characteristics.